home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / OS2 / MEMSZ312.ZIP / SOURCE.ZIP / ITEMS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-19  |  16.0 KB  |  511 lines

  1. /******************************************************************** ITEMS.H
  2.  *                                                                          *
  3.  *                     Display Item Class Definition                        *
  4.  *                                                                          *
  5.  ****************************************************************************/
  6.  
  7. #ifndef ITEMS_H
  8. #define ITEMS_H
  9.  
  10. #ifndef OS2_INCLUDED
  11.    #define INCL_BASE
  12.    #define INCL_PM
  13.    #include <os2.h>
  14. #endif
  15.  
  16. #include <time.h>
  17.  
  18. #include "Dde.h"
  19. #include "ReString.h"
  20.  
  21. extern VOID Log ( char *Message, ... ) ;
  22.  
  23. class Item {
  24.  
  25.    private:
  26.       USHORT Id ;                  // Item ID.
  27.       BOOL   Flag ;                // Flag: Show this item at this time?
  28.       char   Name [80] ;           // Text for items profile name.
  29.       char   DefaultLabel [80] ;   // Text to display on left part of line (default).
  30.       Dde_Server *pDdeServer ;     // -> DDE Server object
  31.       char Topic [80] ;            // DDE Topic name
  32.       Dde_Item *pDdeItem ;         // -> DDE Item object
  33.  
  34.    protected:
  35.       char   CurrentLabel [80] ;   // Text to display on left part of line.
  36.       ULONG  Value ;               // Current value.
  37.  
  38.    public:
  39.       Item ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, Dde_Server *ddeserver, char *topic ) :
  40.          Id(id), Flag(TRUE), Value(0), pDdeServer(ddeserver) {
  41.          strcpy ( Name, pName ) ;
  42.          strcpy ( CurrentLabel, pCurrentLabel ) ;
  43.          strcpy ( DefaultLabel, pDefaultLabel ) ;
  44.          strcpy ( Topic, topic ) ;
  45.          pDdeServer->AddItem ( Topic, DefaultLabel, DDEFMT_TEXT, "", 1 ) ;
  46.          pDdeItem = pDdeServer->FindItem ( Topic, DefaultLabel ) ;
  47.       }
  48.  
  49.       ~Item ( ) {
  50.          pDdeServer->RemoveItem ( Topic, DefaultLabel ) ;
  51.       }
  52.  
  53.       USHORT QueryId           ( void ) { return ( Id   ) ; }
  54.       BOOL   QueryFlag         ( void ) { return ( Flag ) ; }
  55.       PCHAR  QueryName         ( void ) { return ( Name ) ; }
  56.       PCHAR  QueryCurrentLabel ( void ) { return ( CurrentLabel ) ; }
  57.       PCHAR  QueryDefaultLabel ( void ) { return ( DefaultLabel ) ; }
  58.       ULONG  QueryValue        ( void ) { return ( Value ) ; }
  59.  
  60.       void SetLabel ( char *label ) { strcpy ( CurrentLabel, label ) ;  Value = 0 ; }
  61.  
  62.       void SetFlag   ( void ) { Flag = TRUE ; }
  63.       void ResetFlag ( void ) { Flag = FALSE ; }
  64.  
  65.       void DdeUpdate ( char *Text ) ;
  66.  
  67.       void Paint ( HPS hPS, RECTL &Rectangle, 
  68.          COLOR TextColor, COLOR BackColor,
  69.          char *Label, char *Text, ULONG NewValue ) ;
  70.  
  71.       // The following functions must be provided by all subclasses.
  72.  
  73.       virtual int Measure ( HPS hPS, RECTL &Rectangle ) = 0 ;
  74.  
  75.       virtual ULONG NewValue ( void ) = 0 ;
  76.  
  77.       virtual void FormatText ( char *Label, char *Text, ULONG Value ) = 0 ;
  78.  
  79.       virtual void FormatLine ( char *Buffer, int MaxWidth ) ;
  80.  
  81.       virtual void Repaint ( HPS hPS, RECTL &Rectangle,
  82.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) = 0 ;
  83. } ;
  84.  
  85. class Clock : public Item {
  86.  
  87.    private:
  88.       COUNTRYINFO CountryInfo ;
  89.       char szAm [3] ;
  90.       char szPm [3] ;
  91.       ResourceString *DaysOfWeek ;
  92.       BOOL ShowSeconds ;
  93.  
  94.    public:
  95.       Clock ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  96.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo,
  97.          char *szam, char *szpm, ResourceString *daysofweek, BOOL showseconds )
  98.  
  99.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ),
  100.          DaysOfWeek(daysofweek), ShowSeconds(showseconds) {
  101.  
  102.          CountryInfo = countryinfo ;
  103.          strcpy ( szAm, szam ) ;
  104.          strcpy ( szPm, szpm ) ;
  105.       }
  106.  
  107.       void SetShowSeconds ( BOOL showseconds ) { ShowSeconds = showseconds ; Value = 0 ; }
  108.  
  109.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  110.  
  111.       ULONG NewValue ( void ) ;
  112.  
  113.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  114.  
  115.       void FormatLine ( char *Buffer, int MaxWidth ) ;
  116.  
  117.       void Repaint ( HPS hPS, RECTL &Rectangle,
  118.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  119. } ;
  120.  
  121. class ElapsedTime : public Item {
  122.  
  123.    private:
  124.       COUNTRYINFO CountryInfo ;
  125.       ResourceString *Day ;
  126.       ResourceString *Days ;
  127.       BOOL ShowSeconds ;
  128.  
  129.    public:
  130.       ElapsedTime ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  131.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo,
  132.          ResourceString *day, ResourceString *days, BOOL showseconds )
  133.  
  134.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ),
  135.          Day(day), Days(days), ShowSeconds(showseconds) {
  136.  
  137.          CountryInfo = countryinfo ;
  138.       }
  139.  
  140.       void SetShowSeconds ( BOOL showseconds ) { ShowSeconds = showseconds ;  Value = 0 ; }
  141.  
  142.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  143.  
  144.       ULONG NewValue ( void ) ;
  145.  
  146.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  147.  
  148.       void Repaint ( HPS hPS, RECTL &Rectangle,
  149.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  150. } ;
  151.  
  152. class SwapFree : public Item {
  153.  
  154.    private:
  155.       COUNTRYINFO CountryInfo ;
  156.       USHORT ShowK ;
  157.       PSZ SwapPath ;
  158.       ULONG MinFree ;
  159.  
  160.    public:
  161.       SwapFree ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  162.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo,
  163.          USHORT sk, PSZ swappath, ULONG minfree )
  164.  
  165.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ),
  166.          ShowK(sk), MinFree(minfree) {
  167.  
  168.          CountryInfo = countryinfo ;
  169.          SwapPath = new BYTE [ strlen(PCHAR(swappath)) + 1 ] ;
  170.          strcpy ( PCHAR(SwapPath), PCHAR(swappath) ) ;
  171.       }
  172.  
  173.       ~SwapFree ( void ) {
  174.          delete [] SwapPath ;
  175.       }
  176.  
  177.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  178.  
  179.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  180.  
  181.       ULONG NewValue ( void ) ;
  182.  
  183.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  184.  
  185.       void Repaint ( HPS hPS, RECTL &Rectangle,
  186.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  187. } ;
  188.  
  189. class MemoryFree : public Item {
  190.  
  191.    private:
  192.       COUNTRYINFO CountryInfo ;
  193.       USHORT ShowK ;
  194.  
  195.    public:
  196.       MemoryFree ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  197.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo, USHORT sk )
  198.  
  199.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  200.          ShowK(sk) {
  201.  
  202.          CountryInfo = countryinfo ;
  203.       }
  204.  
  205.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  206.  
  207.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  208.  
  209.       ULONG NewValue ( void ) ;
  210.  
  211.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  212.  
  213.       void Repaint ( HPS hPS, RECTL &Rectangle,
  214.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  215. } ;
  216.  
  217. class VirtualFree : public Item {
  218.  
  219.    private:
  220.       COUNTRYINFO CountryInfo ;
  221.       USHORT ShowK ;
  222.  
  223.    public:
  224.       VirtualFree ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  225.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo, USHORT sk )
  226.  
  227.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  228.          ShowK(sk) {
  229.  
  230.          CountryInfo = countryinfo ;
  231.       }
  232.  
  233.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  234.  
  235.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  236.  
  237.       ULONG NewValue ( void ) ;
  238.  
  239.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  240.  
  241.       void Repaint ( HPS hPS, RECTL &Rectangle,
  242.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  243. } ;
  244.  
  245. class SwapSize : public Item {
  246.  
  247.    private:
  248.       COUNTRYINFO CountryInfo ;
  249.       USHORT ShowK ;
  250.       PSZ SwapPath ;
  251.  
  252.    public:
  253.       SwapSize ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  254.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO countryinfo, 
  255.          USHORT sk, PSZ swappath )
  256.  
  257.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  258.          ShowK(sk) {
  259.  
  260.          CountryInfo = countryinfo ;
  261.          SwapPath = new BYTE [ strlen(PCHAR(swappath)) + 1 ] ;
  262.          strcpy ( PCHAR(SwapPath), PCHAR(swappath) ) ;
  263.       }
  264.  
  265.       ~SwapSize ( void ) {
  266.          delete [] SwapPath ;
  267.       }
  268.  
  269.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  270.  
  271.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  272.  
  273.       ULONG NewValue ( void ) ;
  274.  
  275.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  276.  
  277.       void Repaint ( HPS hPS, RECTL &Rectangle,
  278.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  279. } ;
  280.  
  281. class SpoolSize : public Item {
  282.  
  283.    private:
  284.       COUNTRYINFO CountryInfo ;
  285.       USHORT ShowK ;
  286.       PSZ SpoolPath ;
  287.  
  288.    public:
  289.       SpoolSize ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  290.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo, 
  291.          USHORT sk, PSZ spoolpath )
  292.  
  293.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  294.          ShowK(sk) {
  295.  
  296.          CountryInfo = countryinfo ;
  297.          SpoolPath = new BYTE [ strlen(PCHAR(spoolpath)) + 1 ] ;
  298.          strcpy ( PCHAR(SpoolPath), PCHAR(spoolpath) ) ;
  299.       }
  300.  
  301.       ~SpoolSize ( void ) {
  302.          delete [] SpoolPath ;
  303.       }
  304.  
  305.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  306.  
  307.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  308.  
  309.       ULONG NewValue ( void ) ;
  310.  
  311.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  312.  
  313.       void Repaint ( HPS hPS, RECTL &Rectangle,
  314.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  315. } ;
  316.  
  317. class CpuLoad : public Item {
  318.  
  319.    private:
  320.       PULONG IdleCount ;
  321.       ULONG MaxCount ;
  322.  
  323.    public:
  324.       CpuLoad ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  325.          Dde_Server *pDdeServer, char *Topic, ULONG maxcount, PULONG idlecount )
  326.  
  327.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  328.          MaxCount(maxcount), IdleCount(idlecount) { }
  329.  
  330.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  331.  
  332.       ULONG NewValue ( void ) ;
  333.  
  334.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  335.  
  336.       void Repaint ( HPS hPS, RECTL &Rectangle,
  337.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  338. } ;
  339.  
  340. class TaskCount : public Item {
  341.  
  342.    private:
  343.       HAB Anchor ;
  344.  
  345.    public:
  346.       TaskCount ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  347.          Dde_Server *pDdeServer, char *Topic, HAB anchor )
  348.  
  349.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  350.          Anchor(anchor) { }
  351.  
  352.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  353.  
  354.       ULONG NewValue ( void ) ;
  355.  
  356.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  357.  
  358.       void Repaint ( HPS hPS, RECTL &Rectangle,
  359.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  360. } ;
  361.  
  362. class DriveFree : public Item {
  363.  
  364.    private:
  365.       COUNTRYINFO CountryInfo ;
  366.       USHORT ShowK ;
  367.       ResourceString *DriveError ;
  368.       USHORT DriveNumber ;
  369.       BOOL ShowFileSystemName ;
  370.       BYTE FileSystem [80] ;
  371.       BOOL ShowDiskLabel ;
  372.       BYTE DiskLabel [12] ;
  373.       BOOL Error ;
  374.  
  375.    public:
  376.       DriveFree ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  377.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo, 
  378.          USHORT sk, USHORT drivenumber, ResourceString *driveerror, BOOL showfilesystemname, 
  379.          PSZ filesystem, BOOL showdisklabel, PSZ disklabel )
  380.  
  381.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  382.          ShowK(sk), DriveError(driveerror), DriveNumber(drivenumber),
  383.          ShowFileSystemName(showfilesystemname), ShowDiskLabel(showdisklabel), 
  384.          Error(FALSE) {
  385.  
  386.          CountryInfo = countryinfo ;
  387.          strcpy ( PCHAR(FileSystem), PCHAR(filesystem) ) ;
  388.          strcpy ( PCHAR(DiskLabel), PCHAR(disklabel) ) ;
  389.       }
  390.  
  391.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  392.  
  393.       void SetShowFileSystemName ( BOOL showfilesystemname ) { ShowFileSystemName = showfilesystemname ;  Value = 0 ; }
  394.  
  395.       void SetShowDiskLabel ( BOOL showdisklabel ) { ShowDiskLabel = showdisklabel ;  Value = 0 ; }
  396.  
  397.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  398.  
  399.       ULONG NewValue ( void ) ;
  400.  
  401.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  402.  
  403.       void Repaint ( HPS hPS, RECTL &Rectangle,
  404.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  405. } ;
  406.  
  407. class TotalFree : public Item {
  408.  
  409.    private:
  410.       COUNTRYINFO CountryInfo ;
  411.       USHORT ShowK ;
  412.       ULONG Drives ;
  413.  
  414.    public:
  415.       TotalFree ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  416.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo, 
  417.          USHORT sk, ULONG drives )
  418.  
  419.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  420.          ShowK(sk), Drives(drives) {
  421.  
  422.          CountryInfo = countryinfo ;
  423.       }
  424.  
  425.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  426.  
  427.       void ResetMask ( ULONG drives ) { Drives = drives ; }
  428.  
  429.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  430.  
  431.       ULONG NewValue ( void ) ;
  432.  
  433.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  434.  
  435.       void Repaint ( HPS hPS, RECTL &Rectangle,
  436.          COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  437. } ;
  438.  
  439. class SwapSlack : public Item {
  440.  
  441.    private:
  442.       COUNTRYINFO  CountryInfo ;
  443.       USHORT       ShowK ;
  444.       VirtualFree *pVirtualFree ;
  445.       SwapFree    *pSwapFree ;
  446.       MemoryFree  *pMemFree ;
  447.  
  448.    public:
  449.       SwapSlack ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel, 
  450.          Dde_Server *pDdeServer, char *Topic, COUNTRYINFO &countryinfo, 
  451.          USHORT sk, VirtualFree *pvf, SwapFree *psf, MemoryFree *pmf )
  452.  
  453.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ), 
  454.          ShowK(sk), pVirtualFree(pvf), pSwapFree(psf), pMemFree(pmf) {
  455.  
  456.          CountryInfo = countryinfo ;
  457.       }
  458.  
  459.       void SetShowK ( USHORT flag ) { ShowK = flag ;  Value = 0 ; }
  460.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  461.       ULONG NewValue ( void ) ;
  462.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  463.       void Repaint ( HPS hPS, RECTL &Rectangle, COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  464. } ;
  465.  
  466. class ProcessCount : public Item {
  467.  
  468.    private:
  469.       PULONG DQPS_Buffer ;
  470.  
  471.    public:
  472.       ProcessCount ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel,
  473.          Dde_Server *pDdeServer, char *Topic )
  474.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ) { 
  475.  
  476.          DosAllocMem ( (PPVOID)&DQPS_Buffer, 0x10000, PAG_READ | PAG_WRITE | PAG_COMMIT | OBJ_TILE ) ;
  477.  
  478.       } /* endmethod */
  479.  
  480.       ~ProcessCount ( ) { DosFreeMem ( DQPS_Buffer ) ; }
  481.  
  482.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  483.       ULONG NewValue ( void ) ;
  484.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  485.       void Repaint ( HPS hPS, RECTL &Rectangle, COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  486. } ;
  487.  
  488. class ThreadCount : public Item {
  489.  
  490.    private:
  491.       PULONG DQPS_Buffer ;
  492.  
  493.    public:
  494.       ThreadCount ( USHORT id, char *pName, char *pCurrentLabel, char *pDefaultLabel,
  495.          Dde_Server *pDdeServer, char *Topic )
  496.          : Item ( id, pName, pCurrentLabel, pDefaultLabel, pDdeServer, Topic ) { 
  497.  
  498.          DosAllocMem ( (PPVOID)&DQPS_Buffer, 0x10000, PAG_READ | PAG_WRITE | PAG_COMMIT | OBJ_TILE ) ;
  499.  
  500.       } /* endmethod */
  501.  
  502.       ~ThreadCount ( ) { DosFreeMem ( DQPS_Buffer ) ; }
  503.  
  504.       int Measure ( HPS hPS, RECTL &Rectangle ) ;
  505.       ULONG NewValue ( void ) ;
  506.       void FormatText ( char *Label, char *Text, ULONG Value ) ;
  507.       void Repaint ( HPS hPS, RECTL &Rectangle, COLOR TextColor, COLOR BackColor, BOOL Mandatory ) ;
  508. } ;
  509.  
  510. #endif
  511.